#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
"""
1、写函数，，用户传入修改的文件名，与要修改的内容，执行函数，完成批了修改操作

2、写函数，计算传入字符串中【数字】、【字母】、【空格] 以及 【其他】的个数

3、写函数，判断用户传入的对象（字符串、列表、元组）长度是否大于5。

4、写函数，检查传入列表的长度，如果大于2，那么仅保留前两个长度的内容，并将新内容返回给调用者。

5、写函数，检查获取传入列表或元组对象的所有奇数位索引对应的元素，并将其作为新列表返回给调用者。

6、写函数，检查字典的每一个value的长度,如果大于2，那么仅保留前两个长度的内容，并将新内容返回给调用者。
dic = {"k1": "v1v1", "k2": [11,22,33,44]}
PS:字典中的value只能是字符串或列表
"""

# 1、写函数，用户传入修改的文件名，与要修改的内容，执行函数，完成批了修改操作

import os


def change(filename, old_content, new_content):
    """ 文件修改

    :type filename:  文件名称
    :type old_content: 原先的内容
    :type new_content: 新的内容
    """
    with open("{}".format(filename), "r", encoding='utf-8') as read_f, \
            open('.{}.swap'.format(filename), "wt", encoding='utf-8') as write_f:
        for reads in read_f:
            read_f.seek(0, 0)
            msg = read_f.read()
            new_msg = msg.replace(str(old_content), str(new_content))
            write_f.write(new_msg)
    os.remove(filename)
    os.rename(".{}.swap".format(filename), filename)


change("a.txt", *["hello", "world"])
